home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
pascal
/
tjoop11.zip
/
DLSTTEST.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-05-20
|
2KB
|
115 lines
PROGRAM MyDList ;
USES
CRT ,
DListOBJ ,
Elements ,
BaseTypes ;
VAR
dl : PDListOBJ ;
d : PElementOBJ ;
i : INTEGER ;
s : STRING ;
r : REAL ;
BEGIN { ******* MAIN ******* }
WriteLn ;
WriteLn ( 'Memory before operation : ' , MemAvail : 5 ) ;
dl := New ( PDListOBJ , Init ) ;
dl^.Add ( New ( PStrOBJ , Init ( 'One!' ) ) ) ;
dl^.Add ( New ( PRealOBJ , Init ( 1.5 ) ) ) ;
dl^.Add ( New ( PStrOBJ , Init ( 'Two!' ) ) ) ;
dl^.Add ( New ( PRealOBJ , Init ( 2.5 ) ) ) ;
WriteLn ( 'Memory with four items : ' , MemAvail : 5 ) ;
d := PElementOBJ ( dl^.Get ) ;
d^.Display ;
Dispose ( d , Done ) ;
WriteLn ( ' -- The last added!' ) ;
WHILE ( dl^.PrevOne )
DO ;
d := PElementOBJ ( dl^.Get ) ;
d^.Display ;
Dispose ( d , Done ) ;
WriteLn ( ' -- The list head!' ) ;
WHILE ( dl^.NextOne )
DO ;
dl^.Add ( New ( PIntOBJ , Init ( 3 ) ) ) ;
dl^.Add ( New ( PRealOBJ , Init ( 3.5 ) ) ) ;
dl^.Add ( New ( PIntOBJ , Init ( 4 ) ) ) ;
WHILE ( dl^.PrevOne )
DO ;
WriteLn ( 'Memory with three more items : ' , MemAvail : 5 ) ;
i := 30000 ;
r := -100000 ;
s := 'HA HA!' ;
REPEAT
CASE dl^.TheType
OF
STR_OBJ : dl^.SetData ( @s ) ;
INT_OBJ : dl^.SetData ( @i ) ;
REAL_OBJ : dl^.SetData ( @r ) ;
ELSE
WriteLn ( 'We have a problem!' ) ;
END ; { CASE dl^.TheType }
UNTIL ( NOT ( dl^.NextOne ) ) ;
WHILE ( NOT ( dl^.Empty ) )
DO
BEGIN
d := PElementOBJ ( dl^.Get ) ;
d^.Display ;
Write ( ' ' ) ;
Dispose ( d , Done ) ;
END ; { WHILE }
WriteLn ;
WriteLn ( 'Memory after disposing of all elements : ' , MemAvail : 5 ) ;
Dispose ( dl , Done ) ;
WriteLn ( 'Memory after disposing of the stack : ' , MemAvail : 5 ) ;
END .